const Controller = require('egg').Controller
const path = require('path')
const fs = require('fs')
class UploadController extends Controller {
	// 图片上传
	async upload() {
		const { ctx, app } = this
		console.log(ctx.genID(10), 'ctx')
		console.log(ctx.apiFail, 'files------------>')
		if (!ctx.request.files) {
			return ctx.apiFail('请先选择上传文件')
		}
		console.log(ctx.request.files, 'ctx.request.files')
		const file = ctx.request.files[0]
		const name = 'egg-oss-demo/' + ctx.genID(10) + path.extname(file.filename)
		let result
		try {
			result = await ctx.oss.put(name, file.filepath)
		} catch (err) {
			console.log(err)
		}
		//  finally {
		// 	console.log('删除操作')
		// 	await fs.unlinkSync(file.filepath)
		// }

		console.log(result, 'result----------------oss')

		// if (result) {
		// 	return (ctx.body = ctx.apiSuccess(result.url))
		// }
		ctx.body = ctx.apiSuccess(result.url)
	}

	// 图片删除
	async deleteFile() {
		console.log(this.ctx.oss, 'this.ctx.oss')
		// http://wyp0712.oss-cn-beijing.aliyuncs.com/egg-oss-demo/8jsqnyfm3x40000.jpeg
		try {
			// 填写Object完整路径。Object完整路径中不能包含Bucket名称。
			let result = await this.ctx.oss.delete(
				'/egg-oss-demo/2tqdtpaz1uk0000.jpeg'
			)
			console.log(result, '------------------------------------------------')
			this.ctx.body = { result }
		} catch (e) {
			console.log(e)
			this.ctx.body = e
		}
	}

	// 图片下载
	async downLoadFile() {
		try {
			// 填写Object完整路径和本地文件的完整路径。Object完整路径中不能包含Bucket名称。
			// 如果指定的本地文件存在会覆盖，不存在则新建。
			// 如果未指定本地路径，则下载后的文件默认保存到示例程序所属项目对应本地路径中。
			let result = await this.ctx.oss.get(
				'/egg-oss-demo/6t699h0tpvs0000.jpeg',
				path.join(__dirname, '../public/imgs/6t699h0tpvs0000.jpeg')
			)
			console.log(result)
			this.ctx.body = { data: result.content }
		} catch (e) {
			console.log(e)
			this.ctx.body = { e }
		}
	}
}

module.exports = UploadController
